package com.sunspring.zdcall.mapper.master;

import com.sunspring.zdcall.dto.DeptDto;
import com.sunspring.zdcall.entity.ZdBaseDepartment;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author WuLei
 * @Date 2018/11/27  15:34
 */
public interface DeptMapper {

    /**
     * 条件查询
     * @param department ZdBaseDepartment
     * @return List<ZdBaseDepartment>
     */
    List<ZdBaseDepartment> selectSelective(ZdBaseDepartment department);

    /**
     * 根据科室Id查询数量
     * @param deptId 科室ID
     * @return 科室数量
     */
    int selectCountByDeptId(String deptId);

    /**
     * 增加单个科室
     * @param departmentInfo ZdBaseDepartment
     * @return 受影响行数
     */
    int insertDeptSelective(ZdBaseDepartment departmentInfo);

    /**
     * 根据deptId删除科室信息
     * @param deptId 科室id
     * @return 受影响行数
     */
    int deleteById(String deptId);

    /**
     * 根据科室id修改科室信息
     * @param departmentInfo departmentInfo
     * @return 影响条数
     */
    int updateById(ZdBaseDepartment departmentInfo);


    /**
     * 根据deptName查询科室数量
     * @param deptName 科室名称
     * @return 数量
     */
    int selectCountByName(String deptName);


    /**
     * 修改科室状态
     * @param deptId 科室id
     * @param state 状态id
     * @return 受影响行数
     */
    int updateStateById(@Param("deptId") String deptId,@Param("state") int state);

    /**
     * 查询所有的科室和检查室
     * @return List<DeptDto>
     */
    List<DeptDto> selectDeptAndCheckroom();


}
